package com.xiaoge.configurationannotation;

import com.xiaoge.service.MemberService;
import com.xiaoge.service.OrderDetailService;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * TODO
 * 		1. @Configuration(proxyBeanMethods = false) 当前类下的所有Bean都不能相互依赖, 因为它没有代理, 所以每次调用的结果都不一样, 但是它会把方法Bean的返回值注入到ioc容器是单例的, 注入以后的bean可以被别人使用(注意: 构造期间的Bean不能相互依赖, 因为它只是普通对象调用方法而已)
 * 		2. @Configuration(proxyBeanMethods = true) 当前类下的所有Bean都能相互依赖, 因为它是被代理过得, 没有任何影响(因为在次调用该Bean它会先去ioc容器找, 没有在创建)
 *
 * @author <a href="mailto:1330137071@qq.com">Zhang Xiao</a>
 * @author <a href="mailto:zhangxiao@dist.com.cn">Zhang Xiao</a>
 * @since
 */
@Configuration(proxyBeanMethods = false)
public class TestConfigurationAnnotation {

	@Bean
	public MemberService memberService() {
		return new MemberService();
	}

	@Bean
	public OrderDetailService orderDetailService()  {
		System.out.println(memberService());
		System.out.println(memberService());
		return new OrderDetailService();
	}

}
